package xin.marcher.module.lifecycle.converter;

import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import xin.marcher.module.lifecycle.domain.dto.ItemPeriodStatusDTO;
import xin.marcher.module.lifecycle.domain.entity.ItemPeriodStatusDO;
import xin.marcher.module.lifecycle.domain.request.ItemPeriodRequest;
import xin.marcher.module.lifecycle.domain.request.ItemPeriodStatusRequest;

/**
 * 商品状态相关对象克隆
 */
@Mapper(componentModel = "spring")
public interface ItemPeriodStatusConverter {

    /**
     * 转换DO 为 DTO
     *
     * @param itemPeriodStatusDO
     * @return
     */
    ItemPeriodStatusDTO entityToDTO(ItemPeriodStatusDO itemPeriodStatusDO);

    /**
     * 转换request 为 DO
     *
     * @param request
     * @return
     */
    ItemPeriodStatusDO requestToEntity(ItemPeriodStatusRequest request);

    /**
     * 转换request 为 DO
     *
     * @param itemPeriodRequest
     * @param operateUser
     * @return
     */
    @Mapping(target = "updateUser", source = "operateUser")
    ItemPeriodStatusDO converterPeriodStageDO(ItemPeriodRequest itemPeriodRequest, Integer operateUser);
}
